#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<string.h>


int main()
{  
    int pipefd[2];
    int ret=pipe(pipefd);       //创建一个管道
    if(ret<0){
       perror("pipe error\n");
       return -1;
    }

    int pid1=fork();   //创建一个子进程1，用来实现数据写入
    if(pid1<0){
       perror("fork error!\n");
       return -1;
    }else if(pid1==0){
        //子进程1，用于写入数据
        char* data="今天是2023年9月15日，天气晴，要好好学习!\n";
        write(pipefd[1],data,strlen(data));
        exit(0);
    }


    int pid2=fork();
    if(pid2==0){
       //子进程 2，用于读取数据
       char buf[1024];
       read(pipefd[0],buf,1023);
       printf("努力学习: %s\n",buf);
       exit(0);
    }
    wait(NULL);
    wait(NULL);
    return 0;
}
